机器学习笔记——机器学习实战之准备(一)
从零开始学习数据分析,Python爱好者社区专栏作者
终身学习者@数据分析&数据挖掘
知乎专栏:https://zhuanlan.zhihu.com/linga
目录
机器学习简单概述
机器学习的主要任务
学习机器学习的原因
python语言优势
1.1 何谓机器学习
简单的说,机器学习就是把无序的数据变换成有用的信息。
机器学习的主要任务就分类。
机器学习关键术语:
分类;训练集;样本集;训练样本;目标样本;知识表示
训练集是用于机器学习算法的数据样本集合
1.3 机器学习的主要任务
机器学习的主要如何解决分类问题,主要任务是将实例数据划分到合适的分类中。
机器学习的另一项任务就是回归。(回归的例子之一就是 数据拟合曲线)分类和回归属于监督学习。
监督学习:因为这类算法必须知道预测什么,即目标变量的分类信息。
无监督学习:此时数据没有类别信息,也不会给定目标值。无监督学习可以减少数据特征的维度,使我们用二维图或三维图更加直观地展示数据信息。
聚类:数据集合分成类似的对象组成多个类的过程。
密度估计:寻找描述数据统计值的过程。
1.4 如何选择合适的算法
先考虑两个问题:
使用机器学习算法的目的,想要完成何种任务?
需要分析或收集的数据是什么?(了解数据的以下特征:特征值是离散变量还是连续型变量,特征量是否存在缺失的值)
我们只能一定程度上缩小算法的选择范围,一般不存在最好的算法或给出最好结果的算法,同时还要尝试不同算法的执行效果。
发现最好的算法的关键环节是反复试错的过程。
1.5 开发及其学习应用程序的步骤
收集数据。我们有很多办法收集数据,如爬虫,设备发送的信息。
准备输入数据。确保数据的格式符合要求。本书采用python的List
分析输入数据。手工打开文本编辑器,看数据是否为空。浏览数据,分析是否可以识别模式。确保数据集中没有垃圾数据。
训练算法。将前两步得到的格式化的数据输入到算法,从中抽取知识和信息。得到的知识需要存储为计算机可以处理的格式。
测试算法。将实际使用第4步得到的算法。对于监督学习,必须已知用于评估算法的目标变量值;对于无监督学习,也必须用到其他的评测手段来检验算法的成功率。
使用算法。将机器学习算法转换为应用程序,执行实际任务。
1.6 python语言的优势
有以下几个原因:(1)python的语法清晰;(2)易于操作的纯文本文件;(3)使用广泛,存在大量的开发文档
1.7 NumPy函数基础
下面给出一个数组和矩阵的例子:
In [1]: import numpy as np
In [2]: x=np.random.rand(4,4)
In [3]: x
Out[3]:
array([[ 0.52844327, 0.22339639, 0.1034135 , 0.463985 ],
[ 0.14394297, 0.04331558, 0.17968244, 0.55428581],
[ 0.29320121, 0.4110452 , 0.6663981 , 0.14709608],
[ 0.69421236, 0.77925693, 0.64956842, 0.13911624]])
上述命令构造了一个4*4的随机数组。
In [6]: np.mat(x)
Out[6]:
matrix([[ 0.52844327, 0.22339639, 0.1034135 , 0.463985 ],
[ 0.14394297, 0.04331558, 0.17968244, 0.55428581],
[ 0.29320121, 0.4110452 , 0.6663981 , 0.14709608],
[ 0.69421236, 0.77925693, 0.64956842, 0.13911624]])
In [7]: randMat=np.mat(x)
调用mat()函数将数组转行为矩阵。
In [8]: randMat.I
Out[8]:
matrix([[ 5.20712532, -4.48860333, 3.32227592, -2.99571552],
[-5.6330336 , 4.87766411, -6.17839321, 5.88601676],
[ 1.49156708, -1.72882662, 4.23683893, -2.56636519],
[-1.3955605 , 3.14903216, -1.75339714, 1.14992431]])
In [9]: invRandMat=randMat.I
.I 操作符实现了矩阵的求逆运算。
In [10]: randMat*invRandMat
Out[10]:
matrix([[ 1.00000000e+00, -4.44089210e-16, 4.44089210e-16,
-2.22044605e-16],
[ 0.00000000e+00, 1.00000000e+00, 0.00000000e+00,
0.00000000e+00],
[ 0.00000000e+00, 0.00000000e+00, 1.00000000e+00,
0.00000000e+00],
[ 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,
1.00000000e+00]])
In [11]: myEye=randMat*invRandMat
执行了矩阵乘法,得到矩阵与其逆矩阵相乘的结果。
In [13]: myEye-np.eye(4)
Out[13]:
matrix([[ 0.00000000e+00, -4.44089210e-16, 4.44089210e-16,
-2.22044605e-16],
[ 0.00000000e+00, -1.11022302e-16, 0.00000000e+00,
0.00000000e+00],
[ 0.00000000e+00, 0.00000000e+00, -4.44089210e-16,
0.00000000e+00],
[ 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,
4.44089210e-16]])
函数eye(4)创建了4*4的单位矩阵
1.8 本章小结
学习机器学习算法,必须了解数据实例,每个数据实例由多个特征值组成。分类是基本的机器学习任务,它分析未分类数据,以确定如何将其放入已知群组中。为了构建和训练分类器,必须首先输入大量已知分类的数据,我们将这些数据称之为训练样本集。
声明:
本节笔记来自,《机器学习实战》,作者: Peter Harrington ,出版社: 人民邮电出版社
原作名: Machine Learning in Action,译者: 曲亚东 / 李锐 / 王斌 / 李鹏
Python爱好者社区历史文章大合集:
Python爱好者社区历史文章列表(每周append更新一次)
关注后在公众号内回复“课程”即可获取:
小编的Python入门免费视频课程!!!
【最新免费微课】小编的Python快速上手matplotlib可视化库!!!
崔老师爬虫实战案例免费学习视频。
陈老师数据分析报告制作免费学习视频。
玩转大数据分析!Spark2.X+Python 精华实战课程免费学习视频。